import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import *


def init_window(window):
    # 主垂直布局
    main_layout = QVBoxLayout()

    # 顶部水平布局（选项按钮）
    top_layout = QHBoxLayout()

    # 添加选项按钮
    top_layout.addWidget(QPushButton("选项1"))
    top_layout.addWidget(QPushButton("选项2"))
    top_layout.addWidget(QPushButton("选项3"))


    # 将顶部布局添加到主布局
    main_layout.addLayout(top_layout)

    # 中间部分：输入和输出区域
    mid_layout = QHBoxLayout()

    # 左侧输入区域
    left_layout = QVBoxLayout()
    left_layout.addWidget(QLabel("输入:"))
    input_text = QTextEdit()
    left_layout.addWidget(input_text)

    # 右侧输出区域
    right_layout = QVBoxLayout()
    right_layout.addWidget(QLabel("输出:"))
    output_text = QTextEdit()
    right_layout.addWidget(output_text)

    # 将左右布局添加到中间水平布局
    mid_layout.addLayout(left_layout)
    mid_layout.addLayout(right_layout)

    # 将中间布局添加到主布局
    main_layout.addLayout(mid_layout)

    # 底部按钮
    bottom_layout = QHBoxLayout()
    bottom_layout.addStretch()  # 添加弹性空间，使按钮靠右
    bottom_layout.addWidget(QPushButton("处理"))
    bottom_layout.addWidget(QPushButton("清除"))

    # 将底部布局添加到主布局
    main_layout.addLayout(bottom_layout)

    # 设置主布局到窗口
    window.setLayout(main_layout)


if __name__ == '__main__':
    # 创建应用程序
    app = QApplication(sys.argv)

    # 窗口组件
    window = QWidget()
    window.resize(800, 600)
    init_window(window)
    window.setWindowTitle('嵌套布局示例')

    # 显示窗口
    window.show()

    # 等待窗口停止
    sys.exit(app.exec_())